<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //  面试题!!!!!!
      // var let const的区别?
      // 1. let/const 可以形成块级作用域
      // 2. let/const 不存在变量提升，var有
      // 3. let/const 不允许重复声明, var有
      // 4. let/const 存在暂时性死区(temporal dead zone) TDZ,不能在声明之前使用
      // 5. 浏览器中,var声明的全局变量会挂载到window对象上, let/const不会

      // ===> const关键字
      // 1. const 一旦声明，必须马上赋值
      // 2. const 声明的变量不能改变值，(简单类型不能改变值，引用类型不能改变地址)

      // ==> 3. 解释
      // function count(){
      //     let a = 1
      //     var a = 2
      // }
      // function count2(){
      //     let a = 1
      //     let a = 2
      // }

      // ==> 4. 解释
      // if(true){
      //     temp = 'hello world '
      //     let temp;
      // }

      // ==> 5.解释
      var abc = 666;
      console.log(window.abc);
      // ==> 不建议使用var 声明name这个名字， window本身有name这个属性
      var name = 123;
      console.log(window);
    </script>
  </body>
</html>
